﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using DAL;
using BLL;

public partial class admin_Students_DetailClass : System.Web.UI.Page
{
    ClassBLL data = new ClassBLL();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["url_back_admin"] = Request.RawUrl;

            LoadTitle();
            LoadCategory();
            if (Request.QueryString["Id"] != null)
                Filldata();
        }
    }

    private void Filldata()
    {
        int id = Convert.ToInt32(Request.QueryString["Id"]);
        Class clas = data.GetById(id);
        txtName.Text = clas.Name;
        fckEditor.Value = HttpUtility.HtmlDecode(clas.Description);
        dropParent.SelectedValue = clas.CateClassId.ToString();
        if (Convert.ToBoolean(clas.isEnable)) radioEnable.Checked = true;
        else radioVisible.Checked = true;
    }

    private void ShowChild(int parentId, string space)
    {
        List<Category> listDataSource = data.GetByParent(parentId, true);

        foreach (Category item in listDataSource)
        {
            ListItem obj = new ListItem(space + item.Name, item.Id.ToString());
            dropParent.Items.Add(obj);
            ShowChild(item.Id, space + "- - - ");
        }
    }

    private void LoadCategory()
    {
        dropParent.Items.Clear();
        ShowChild(14, " - - ");
        ListItem itemRoot = new ListItem("Danh sách lớp học", "0");
        dropParent.Items.Insert(0, itemRoot);

    }

    private void LoadTitle()
    {
        if (Request.QueryString["Id"] != null)
        {
            h3Title.InnerText = "Chỉnh sửa danh mục tin tức";
        }
    }
    private bool isValidate()
    {
        if (txtName.Text == "")
        {
            Myfunction.ThongBao(lbThongBao, "Tên lớp không được để trống !");
            return false;
        }

        if (Convert.ToInt32(dropParent.SelectedValue) == 0)
        {
            Myfunction.ThongBao(lbThongBao, "Chọn danh mục lớp học !");
            return false;
        }
        return true;
    }

    private void ResetForm()
    {
        txtName.Text = "";
        radioEnable.Checked = true;
        fckEditor.Value = "";
    }


    private void Update()
    {
        int idParent = Convert.ToInt32(dropParent.SelectedValue);
        int id = Convert.ToInt32(Request.QueryString["Id"]);
        Class clas = new Class();
        Class classCurrent = data.GetById(id);

        clas.Id = id;
        clas.Name = txtName.Text;
        clas.Description = HttpUtility.HtmlEncode(fckEditor.Value);
        clas.CreateDate = classCurrent.CreateDate;
        clas.isEnable = (radioEnable.Checked ? true : false);
        clas.CateClassId = idParent;
        data.Update(clas);

        Myfunction.ThongBao(lbThongBao, "Lớp học đã được cập nhật");
    }

    private void Add()
    {
        int idParent = Convert.ToInt32(dropParent.SelectedValue);
        List<Class> clas = new List<Class>();
        
        foreach (var item in Items)
	    {
		    Class classes = new Class();
            classes.Name = txtName.Text;
            classes.Description = HttpUtility.HtmlEncode(fckEditor.Value);
            classes.CreateDate = DateTime.Now;
            classes.isEnable = (radioEnable.Checked ? true : false);
            classes.CateClassId = idParent;
            clas.Add(classes);
	    }

        data.Add(clas);
        Myfunction.ThongBao(lbThongBao, "Lớp học đã được cập nhật");
    }

    protected void btnOk_Click(object sender, EventArgs e)
    {
        if ((int)Session["Role"] != 1)
        {
            Myfunction.ThongBao(lbThongBao, "Bạn không có quyền thực hiện thao tác này ! ");
            return;
        }
        try
        {
            lbThongBao.Text = "";
            if (isValidate())
            {
                if (Request.QueryString["Id"] == null)
                {
                    Add();
                    ResetForm();
                    LoadCategory();
                }
                else
                {
                    Update();
                }
            }
        }
        catch (Exception ex)
        {
            Myfunction.ThongBao(lbThongBao, ex.Message);
        }
    }
}